1. Field of Art
The disclosure generally relates to the field of networking technologies and more specifically to the field of broadcasting data throughout a communication network.
2. Description of the Related Art
A communication network is composed of some number of interconnected group of nodes. Examples of communication nodes are a personal computer, a mobile phone, and a networked sensor. In most contemporary communication networks such as the Internet, a node may be a communication endpoint or may also route packets between endpoints. In this sort of network topology, endpoints are the majority of nodes and do not perform routing functions, and some additional router nodes form a hierarchical routing tree for the endpoints. Another kind of communication topology is a mesh network whereby a significant portion of the nodes acting as endpoints also perform routing functions, forwarding messages through the network on behalf of their network peers.
Yet another kind of network is an epidemic network where each node uses only a broadcast mechanism and keeps no information on its neighbors; each node must be at least intermittently connected to any other node through some possibly varying communication connectivity in the network. All networking topologies depend on nodes being able to directly communicate with one or more other nodes in the network, and routing algorithms require there exist one or more routes over a series of direct connections between two or more nodes that expect to communicate.
One problem in networking is disseminating the same data to all nodes in a network. Examples of this kind of data are application code, packetized messages, and network configuration parameters such as security keys. In some network instances, the difficulty of broadcasting this data is made worse where there are a large number of nodes in the network, the data is large relative to the available network bandwidth, the network is sensitive to excessive power utilization, or the network is composed of some or many unreliable or lossy communication links. In other network instances, these difficulties may collude to exacerbate the problem such as a network that contains thousands of devices that each have limited available power, limited communication bandwidth, lossy communication links, limited memory, and limited computation resources.
Previous attempts at solving this problem have inadequately addressed issues inherent to this type of network data dissemination. One solution uses a central computer to control data dissemination, which can be relatively easy to implement if the network provides a reliable transmission protocol. Nevertheless, this solution suffers from poor performance as the number of the nodes in the network increase and reliability of node communication links decrease. Moreover, this solution requires a capable central computing resource. Other solutions use distributed methods, such as Deluge and Trickle. However, Deluge only focuses on and is specialized for program code dissemination. Likewise, Trickle is only a message advertisement algorithm and has inefficient qualities in terms of power and bandwidth. Thus, both Deluge and Trickle are ineffective with the constraints of network bandwidth and device resources. In addition, general peer-to-peer distribution systems, such as BitTorrent and Gnutella, have also been used to provide similar functions. However, these systems typically require a central controller for coordinating data transfers and are not designed to run on resource-constrained devices.
Therefore, the present state of the art lacks, inter alia, a system or a method that reliably disseminates data in a network that may have a large number of nodes, limited power, limited communication bandwidth, lossy communication links, limited memory, or limited computation resources.